#include "AGXKit.h"
#include <iostream>
#include <iomanip>

AGXKit::AGXKit() : ai(0), cudaCores(0), tensorCores(0), memory(0), storage(0) {}

AGXKit::AGXKit(const std::string& model, double ai, int cudaCores,
               int tensorCores, int memory, int storage)
    : model(model), ai(ai), cudaCores(cudaCores), tensorCores(tensorCores),
      memory(memory), storage(storage) {}

// Getters
std::string AGXKit::getModel() const { return model; }
double AGXKit::getAi() const { return ai; }
int AGXKit::getCudaCores() const { return cudaCores; }
int AGXKit::getTensorCores() const { return tensorCores; }
int AGXKit::getMemory() const { return memory; }
int AGXKit::getStorage() const { return storage; }

// Setters
void AGXKit::setModel(const std::string& model) { this->model = model; }
void AGXKit::setAi(double ai) { this->ai = ai; }
void AGXKit::setCudaCores(int cudaCores) { this->cudaCores = cudaCores; }
void AGXKit::setTensorCores(int tensorCores) { this->tensorCores = tensorCores; }
void AGXKit::setMemory(int memory) { this->memory = memory; }
void AGXKit::setStorage(int storage) { this->storage = storage; }

void AGXKit::display() const {
    std::cout << "AGX套件信息:" << std::endl;
    std::cout << "  型号: " << model << std::endl;
    std::cout << "  AI性能: " << ai << " TOPS" << std::endl;
    std::cout << "  CUDA核心: " << cudaCores << std::endl;
    std::cout << "  Tensor CORE: " << tensorCores << std::endl;
    std::cout << "  显存: " << memory << "G" << std::endl;
    std::cout << "  存储: " << storage << "G" << std::endl;
}